package luogu;

import java.util.Scanner;

public class A1036 {
    //判断是否是质数
   static boolean isPrime(int x){
        if(x<2)return false;
        for(int i=2;i*i<=x;i++){
            if(x%i==0)return false;
        }
        return true;
    }
    static int n;
    static int k;
    static int[] num;
    static int res=0;
    public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
 n= sc.nextInt();
 k=sc.nextInt();
num=new int[n+5];
for(int i=1;i<=n;i++)
{
    num[i]=sc.nextInt();
}
dfs(1,0,0);
        System.out.println(res);
    }
    //处理当前层
    static void dfs(int start,int sum,int count)//从第i个元素开始枚举，枚举总和，枚举了几个数字
    {
if(count==k){
    if(isPrime(sum))res++;
    return;
}
//已经选了count个数字，加上等一下要选的数字，还需要选k-count-1个数字,假设要选的是第x个数字，那么后面还有n-x个数字，那么n-x>=k-count-1,即x<=n-k+count+1
for(int i=start;i<=n-k+count+1;i++){
    dfs(i+1,sum+num[i],count+1);
}
return;
    }
}
